package com.littlebee.storysuper.utils;

import android.content.Context;
import android.text.TextUtils;
import android.util.Patterns;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 作者：liaoyong on 2016/7/21 10:03
 * 邮箱：liaoyong@tuliu.com
 * 描述：合法性检测工具类
 */
public class ValidateUtil {

	public static boolean isIDCardValid(String idcardString) {
		if (idcardString == null || idcardString.equals(""))
			return false;
		
		if (idcardString.length() == 15 || idcardString.length() == 18) {
			return true;
		}
		
		return false;
	}

	/*
	* 判断姓名是否有效
	* 规则1：不能带有数字
	* */
	public static boolean isUserChineseNameValid(String chineseName) {
		if (chineseName == null) {
			return false;
		}

		for (int i = 0; i < 10; i ++) {
			if (chineseName.contains(i + "")) {
				ToastUtil.displayShortToast("姓名中不能有数字");
				return false;
			}
		}
		return true;
	}

	/**
	 * 验证手机号码. 11位的纯数字 第一个数字为1
	 */
	public static boolean isMobileValid(String str) {
		if (TextUtils.isEmpty(str)) {
			return false;
		}
		boolean rightPhone;
		Pattern pattern = Pattern.compile("[1][0-9]*");
		rightPhone = pattern.matcher(str).matches() && str.length() == 11;
		return rightPhone;
	}

	/**
	 * 区号+座机号码+分机号码
	 * @param fixedPhone
	 * @return
	 */
	public static boolean isFixedPhone(String fixedPhone){
		if (TextUtils.isEmpty(fixedPhone))
			return false;

		if (!fixedPhone.contains("-")) {
			return false;
		}

		String reg="(?:(\\(\\+?86\\))(0[0-9]{2,3}\\-?)?([2-9][0-9]{6,7})+(\\-[0-9]{1,4})?)|" +
				"(?:(86-?)?(0[0-9]{2,3}\\-?)?([2-9][0-9]{6,7})+(\\-[0-9]{1,4})?)";
		return Pattern.matches(reg, fixedPhone);
	}

	/**
	 * 判断是否是可以提交的密码
	 * @param password
	 * @return
	 */
	public static boolean isPassword(String password){
		//为空，或者去掉左右空格后仍为空
		if(TextUtils.isEmpty(password) || TextUtils.isEmpty(password.trim())){
			return false;
		}
		int length = password.trim().length();
		//如果去掉空格后的长度在6以下或者20以上
		if (length > 20 || length < 6) {
			return false;
		}
		return true;
	}

	/**
	 * 验证是否是合法的短信验证码
	 * @param smsValidateCode
	 * @return
	 */
	public static boolean isSMSValidateCode(String smsValidateCode){
		String smsValidateCodeReg = "[0-9]{4,6}";
		Pattern pat = Pattern.compile(smsValidateCodeReg);
		Matcher match = pat.matcher(smsValidateCode);
		return match.matches();
	}

	/**
	 * 是否合法的昵称
	 * @param nickName
	 * @return
	 */
	public static boolean isValidateNickName(String nickName){
		return nickName.length() >= 2 && nickName.length() <= 20;
	}

	/**
	 * 是否合法的流转年限
	 * @return
	 */
	public static boolean isValidateFlowAge(String ageStr){
		try {
			int age = Integer.parseInt(ageStr);
			if (age > 70) {
				ToastUtil.displayLongToast("流转年限不能大于70");
				return false;
			}
			if (age <= 0) {
				ToastUtil.displayLongToast("流转年限不能小于或者等于0");
				return false;
			}
		} catch (Exception e) {
			ToastUtil.displayLongToast("请输入数字流转年限");
			return false;
		}

		return true;
	}

	/**
	 * 是否合法的金额
	 * @param money
	 * @return
	 */
	public static boolean isValidateMoney(String money, String type){
		if (TextUtils.isEmpty(money)) {
			return false;
		}
		if (Double.parseDouble(money) >= 100000000) {
			ToastUtil.displayShortToast(String.format("%s金额超过上限", type));
			return false;
		}
		return true;
	}

	/**
	 * 文本是否匹配指定的正则
	 *
	 * @param str
	 * @param regex
	 * @return
	 */
	public static boolean isMatches(String str, String regex) {
		Pattern pattern = Pattern.compile(regex);
		Matcher matcher = pattern.matcher(str);
		return matcher.matches();
	}

	/**
	 * httpUrl 有效
	 */
	public static boolean isHttpUrlValid(String str) {
		if (TextUtils.isEmpty(str)) {
			ToastUtil.displayShortToast("请输入有效的链接");
			return false;
		}
		if (!str.contains("http")) {
			ToastUtil.displayShortToast("请输入有效的链接");
			return false;
		}
		if (Patterns.WEB_URL.matcher(str).matches()) {
			//符合标准
			return true;
		} else{
			//不符合标准
			ToastUtil.displayShortToast("请输入有效的链接,是否存在非法字符");
			return false;
		}

//		String response = HttpHelper.get(BaseApplication.getInstance(), str);
//		if (response == null) {
//			ToastUtil.displayShortToast("链接无法进行访问，请检查链接的正确性");
//			return false;
//		}
	}

}
